package com.ifonly.datatables.service;

import com.ifonly.datatables.DTResponse;
import com.ifonly.datatables.sql.DTSql;

import java.util.Map;

/**
 * <p>
 * . DT查询服务接口
 *
 *  主要用于通过 Sql 封装对象查询出 DTResponse
 * </p>
 *
 * @author Jerry Ou
 * @version 1.0 2015-09-01 13:09
 * @since JDK 1.6
 */
public interface DTService {

    /**
     * 通过 Sql 封装对象查询出 DTResponse
     *
     *  返回结果集类型是 Map<String, Object>
     *
     * @param sql Sql 封装对象
     * @return DTResponse对象
     */
    DTResponse<Map<String, Object>> dtResponse(DTSql sql);

    /**
     * 通过 Sql 封装对象查询出 DTResponse，可指定返回类型
     *
     * @param sql Sql 封装对象
     * @param clz 指定类型
     * @param <T> 类型标记
     * @return
     */
    <T> DTResponse<T> dtResponse(DTSql sql, Class<T> clz);

}
